<?php
namespace control;
// 质量看板
class qualityKanbanClass extends adIndexClass
{
    private const page = 'qualityKanban';
    private const title = '质量看板';
    /*返回网页*/
    public function home()
    {
        $logoConrol = img('logoConrolImg');
        $html = <<<EOT
    <div id="base" class="">

      <!-- Unnamed (矩形) -->
      <div id="u0" class="ax_default box_1">
        <div id="u0_div" class=""></div>
        <div id="u0_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (图像) -->
      <div id="u1" class="ax_default _图片_">
        <img id="u1_img" class="img " src="{$this->root}img/qualityDataBack/u1.jpg">
        <div id="u1_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u2" class="ax_default box_1">
        <div id="u2_div" class=""></div>
        <div id="u2_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (SVG) -->
      <div id="u3" class="ax_default _图片_">
        <img id="u3_img" class="img " src="$logoConrol">
        <div id="u3_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u4" class="ax_default _一级标题">
        <div id="u4_div" class=""></div>
        <div id="u4_text" class="text ">
          <p><span style="text-decoration:none;">质量看板</span></p>
        </div>
      </div>
      
      <!-- Unnamed (SVG) -->
      <div id="ufull" class="ax_default _图片_">
        <a href="{$this->root}control/adIndex.html?cla=qualityKanban&fun=home" target="_blank"><img id="ufull_img" class="img " src="{$this->root}img/svg/full_screen.svg"></a>
        <div id="ufull_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (动态面板) -->
      <div id="u5" class="ax_default">
           <div id="u5_state0" class="panel_state" data-label="State1" style="visibility: inherit; position: relative;">
              <div id="u5_state0_content" class="panel_state_content">
                <!-- time (矩形) -->
                <div id="u6" class="ax_default _三级标题" data-label="time">
                  <div id="u6_div" class=""></div>
                  <div id="u6_text" class="text " style="visibility: inherit;">
                    <p id="cache0"><span style="text-decoration:none;" id="showTime">2021-01-11 09:41:00 MONDAY</span></p>
                  </div>
                </div>
              </div>
            </div>
        </div>

      <!-- Unnamed (SVG) -->
      <div id="u8" class="ax_default _图片_">
        <img id="u8_img" class="img " src="{$this->root}img/qualityDataBack/u8.svg">
        <div id="u8_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u9" class="ax_default box_1">
        <div id="u9_div" class=""></div>
        <div id="u9_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u10" class="ax_default box_1">
        <div id="u10_div" class=""></div>
        <div id="u10_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u11" class="ax_default box_1">
        <div id="u11_div" class=""></div>
        <div id="u11_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u12" class="ax_default box_1">
        <div id="u12_div" class=""></div>
        <div id="u12_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u13" class="ax_default box_1">
        <div id="u13_div" class=""></div>
        <div id="u13_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u14" class="ax_default box_1">
        <div id="u14_div" class=""></div>
        <div id="u14_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u15" class="ax_default box_1">
        <div id="u15_div" class=""></div>
        <div id="u15_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u16" class="ax_default box_1">
        <img id="u16_img" class="img " src="{$this->root}img/qualityDataBack/u16.svg">
        <div id="u16_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u17" class="ax_default box_1">
        <img id="u17_img" class="img " src="{$this->root}img/qualityDataBack/u17.svg">
        <div id="u17_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u18" class="ax_default box_1">
        <img id="u18_img" class="img " src="{$this->root}img/qualityDataBack/u18.svg">
        <div id="u18_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u19" class="ax_default box_1">
        <img id="u19_img" class="img " src="{$this->root}img/qualityDataBack/u18.svg">
        <div id="u19_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u20" class="ax_default box_1">
        <img id="u20_img" class="img " src="{$this->root}img/qualityDataBack/u18.svg">
        <div id="u20_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u21" class="ax_default box_1">
        <img id="u21_img" class="img " src="{$this->root}img/qualityDataBack/u18.svg">
        <div id="u21_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u22" class="ax_default box_1">
        <img id="u22_img" class="img " src="{$this->root}img/qualityDataBack/u17.svg">
        <div id="u22_text" class="text " style="display:none; visibility: hidden">
          <p></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u23" class="ax_default _三级标题">
        <div id="u23_div" class=""></div>
        <div id="u23_text" class="text ">
          <p><span style="text-decoration:none;">总体质量指标</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u24" class="ax_default _三级标题">
        <div id="u24_div" class=""></div>
        <div id="u24_text" class="text ">
          <p><span style="text-decoration:none;">质量波动</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u25" class="ax_default _三级标题">
        <div id="u25_div" class=""></div>
        <div id="u25_text" class="text ">
          <p><span style="text-decoration:none;">制程检验缺陷分布</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u26" class="ax_default _三级标题">
        <div id="u26_div" class=""></div>
        <div id="u26_text" class="text ">
          <p><span style="text-decoration:none;">制终检验缺陷分布</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u27" class="ax_default _三级标题">
        <div id="u27_div" class=""></div>
        <div id="u27_text" class="text ">
          <p><span style="text-decoration:none;">来料质检缺陷分布</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u28" class="ax_default _三级标题">
        <div id="u28_div" class=""></div>
        <div id="u28_text" class="text ">
          <p><span style="text-decoration:none;">委外质检缺陷分布</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u29" class="ax_default _三级标题">
        <div id="u29_div" class=""></div>
        <div id="u29_text" class="text ">
           <p><span style="text-decoration:none;">工序巡检质检缺陷分布</span></p>
        </div>
      </div>

      <!-- Unnamed (图像) -->
      <div id="qualityWaveHtml" class="ax_default _图片_">
      
      </div>

      <!-- Unnamed (组合) -->
      <div id="incomingHtml" class="ax_default" data-left="107" data-top="164" data-width="295" data-height="111">
      
      </div>

      <!-- Unnamed (组合) -->
      <div id="subcontractingHtml" class="ax_default" data-left="578" data-top="164" data-width="295" data-height="111">
      
      </div>

      <!-- Unnamed (组合) -->
      <div id="processHtml" class="ax_default" data-left="1048" data-top="164" data-width="295" data-height="111">

      </div>

      <!-- Unnamed (组合) -->
      <div id="produceEndHtml" class="ax_default" data-left="1519" data-top="164" data-width="295" data-height="111">

      </div>

      <!-- Unnamed (图像) -->
      <div id="incomingDefectHtml" class="ax_default _图片_">
      </div>

      <!-- Unnamed (图像) -->
      <div id="subcontractingDefectHtml" class="ax_default _图片_">
        
      </div>

      <!-- Unnamed (图像) -->
      <div id="processDefectHtml" class="ax_default _图片_">
      </div>
      
      <!-- Unnamed (图像) -->
      <div id="endDefectHtml" class="ax_default _图片_">
        
      </div>

      <!-- Unnamed (图像) -->
      <div id="sizeErrorHtml" class="ax_default _图片_">
        
      </div>
      
    </div>
    <script src='{$this->root}static/javascript/echarts.min.js'></script>
    <script>
        
       $(document).ready(function(){
            //计时器
            var timer = null;
            timer = setTimeout(time, 1000);
            function time() {
                clearTimeout(timer);
                dt = new Date();
                var y = dt.getFullYear();
                var mt = dt.getMonth() + 1;
                var day = dt.getDate();
                var wi = dt.getDay()
                var h = dt.getHours();
                var m = dt.getMinutes();
                var s = dt.getSeconds();
                const weeks = [ 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY']
                const fullTime =  [y, mt, day].map(formatNumber).join('-') + ' ' + [h, m, s].map(formatNumber).join(':') + ' ' + weeks[wi]
                document.getElementById("showTime").innerHTML = fullTime;
                timer = setTimeout(time, 1000);
            }
            const formatNumber = n => {
                n = n.toString()
                return n[1] ? n : '0' + n
            }
        })
        function search_line(form,cla,fun) {
            $("#" + fun + "Html").html("数据查询中，请稍后。。。");
            //串联表单
            var formName = form.split(",");
            var serialize = "";
            var a = "";
            for (var i = 0; i < formName.length; i++) {
                if (serialize == "") {
                    a = "";
                } else {
                    a = "&";
                }
                if (formName[i] != "") {
                    serialize += a + $("[name=" + formName[i] + "]").serialize();
                }
            }
            $.post(root + "control/adIndex.html?cla=" + cla + "&fun=" + fun, serialize, function (data) {
                 $("#" + fun + "Html").html(data.html);
            }, "json");
        }
        $(function() {
            search_line('mainForm','qualityKanban', 'incoming')
            search_line('mainForm','qualityKanban','subcontracting');
            search_line('mainForm','qualityKanban','process');
            search_line('mainForm','qualityKanban','produceEnd');
            search_line('mainForm','qualityKanban','qualityWave');
            search_line('mainForm','qualityKanban','processDefect');
            search_line('mainForm','qualityKanban','endDefect');
            search_line('mainForm','qualityKanban','incomingDefect');
            search_line('mainForm','qualityKanban','subcontractingDefect');
            search_line('mainForm','qualityKanban','sizeError');
        })
        
    </script>
EOT;

        return head("ad") . $this->style() . $html . warn() . $this->adfooter();
    }
    /**
     * 曲线图模板
     *
     * @param array  $data = ["name" => "纵坐标标题一维数组", "series" => [ ["name" => "系列名称","data" => ["数据"] ],… ] ];
     * @param string $type 类型：折线 line ,柱状图 bar
     */
    public function curveMini(array $data, string $type = 'line')
    {
        $areaStyle = '';
        if ($type == 'area') {
            //面积曲线
            $type      = 'line';
            $areaStyle = "areaStyle:{},";
        }
        //系列
        $series = $legend = "";
        // 自定义
        $keys   = ['stack', 'emphasis', 'smooth', 'barMaxWidth', 'itemStyle', 'smooth'];
        $result = isset($data['series'][0]) ? array_intersect($keys, array_keys($data['series'][0])) : [];
        foreach ($data['series'] as $array) {
            $comma     = empty($series) ? '' : ',';
            $attribute = '';
            foreach ($result as $key) {
                if (isset($array[$key])) {
                    $attribute .= $key . ':' . (($key == 'emphasis' || $key == 'itemStyle') ? $array[$key] : "'$array[$key]'") . ',';
                }
            }
            $list_type = isset($array['type']) ? $array['type'] : $type;
            $series    .= $comma . "
			{
				name: '" . $array['name'] . "',
				type: '$list_type',
                $attribute
				data: [" . implode(",", $array['data']) . "],
				$areaStyle
			}";
            $legend    .= "'{$array['name']}',";
        }
        $legend = rtrim($legend, ',');
        $text = isset($data['text'])?$data['text']:'';
        $subtext = isset($data['subtext'])?$data['subtext']:'';
        $legendStyle = isset($data['legendStyle'])?$data['legendStyle']:'';
        //生成html
        $option = "
		var option = {
			title: {
                text: '{$text}',
                subtext: '{$subtext}',
                left: 'right',
                top: '0%'
            },
			tooltip: {
                trigger: 'axis'
            },
			legend: {
			    show: false,
                top:'top',
				data: [" . $legend . "],
				$legendStyle
			},
			grid: {
                top: '20%',left: '3%', right: '3%', bottom: '10%', containLabel: true
			},
			toolbox: {
				feature: {saveAsImage: {show: false,} }
			},
			xAxis: {
				type: 'category', boundaryGap: false, data: ['" . implode("','", $data['name']) . "']
			},
			yAxis: {
				show: false,type: 'value', axisLabel:{ margin: 10, }, //刻度标签与轴线之间的距离
			},
			series: [
				" . $series . "
			]
		};";
        return $this->echarts($option);
    }

    /**
     * 来料
     */
    public function incoming(): bool|string
    {
        $start_day = date("Y-m-d",strtotime("-2 day"));
        $end_day = $this->date;
        $res = [];
        $m = $start_day;
        $total = ['number'=>0,'num'=>0,'passNum'=>0];
        while ($m <= $end_day) {
            $time = " and date_format(time, '%Y-%m-%d') = '$m' ";
            $quality_order = find([
                'table'  => "quality_order",
                'field'  => "IFNULL(count(id),0) as number,IFNULL(sum(num),0) as num,IFNULL(sum(passNum),0) as passNum",
                'single' => " coid = '".self::$coid."' and type = 1 and state = '已质检' " . $time,
            ]);
            $res[] = [
                'date'=>date("m月d日",strtotime($m)),
                'num'=>$quality_order['number'],
                'rate'=>$quality_order['num']>0?round($quality_order['passNum']/$quality_order['num']*100,2):0,
            ];
            $total['number'] += $quality_order['number'];
            $total['num'] += $quality_order['num'];
            $total['passNum'] += $quality_order['passNum'];
            $m = date("Y-m-d", strtotime($m . " +1 day"));
        }
        //订单完成情况
        $data = [
            "subtext" => '',
            "name" => array_column($res,'date'),
            "legendStyle" => "textStyle: {
				    color: '#8c8c8c'
				}",
            "series" => [
                [
                    'name' => '单量',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#8b6bbe'],320),
                    'data' => array_column($res,'num')
                ],
                [
                    'name' => '合格率',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#df89b0'],320),
                    'data' => array_column($res,'passNum')
                ]
            ]
        ];
        $rateTotal = $total['num']>0?round($total['passNum']/$total['num']*100,2):0;
        $json['html'] = '<!-- Unnamed (矩形) -->
        <div id="u63" class="ax_default _三级标题">
          <div id="u63_div" class=""></div>
          <div id="u63_text" class="text ">
            <p><span style="text-decoration:none;">来料质检单量&nbsp; / 合格率</span></p>
          </div>
        </div>

        <!-- Unnamed (矩形) -->
        <div id="u64" class="ax_default _一级标题">
          <div id="u64_div" class=""></div>
          <div id="u64_text" class="text ">
            <p style="font-size:14px;"><span style="font-size:28px;text-decoration:none;">'.$total['number'].'</span><span style="font-size:32px;text-decoration:none;"> </span><span style="font-size:28px;text-decoration:none;">/ '.$rateTotal.'</span><span style="text-decoration:none;">%</span></p>
          </div>
        </div>

        <!-- Unnamed (图像) -->
        <div id="u65" class="ax_default _图片_">
          '.$this->curveMini($data,'area').'
        </div>';
        return json_encode($json, 320);
    }
    /**
     * 委外
     */
    public function subcontracting(): bool|string
    {
        $start_day = date("Y-m-d",strtotime("-2 day"));
        $end_day = $this->date;
        $res = [];
        $m = $start_day;
        $total = ['number'=>0,'num'=>0,'passNum'=>0];
        while ($m <= $end_day) {
            $time = " and date_format(time, '%Y-%m-%d') = '$m' ";
            $quality_order = find([
                'table'  => "quality_order",
                'field'  => "IFNULL(count(id),0) as number,IFNULL(sum(num),0) as num,IFNULL(sum(passNum),0) as passNum",
                'single' => " coid = '".self::$coid."' and type = 5 and state = '已质检' " . $time,
            ]);
            $res[] = [
                'date'=>date("m月d日",strtotime($m)),
                'num'=>$quality_order['number'],
                'rate'=>$quality_order['num']>0?round($quality_order['passNum']/$quality_order['num']*100,2):0,
            ];
            $total['number'] += $quality_order['number'];
            $total['num'] += $quality_order['num'];
            $total['passNum'] += $quality_order['passNum'];
            $m = date("Y-m-d", strtotime($m . " +1 day"));
        }
        //订单完成情况
        $data = [
            "subtext" => '',
            "name" => array_column($res,'date'),
            "legendStyle" => "textStyle: {
				    color: '#8c8c8c'
				}",
            "series" => [
                [
                    'name' => '单量',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#8b6bbe'],320),
                    'data' => array_column($res,'num')
                ],
                [
                    'name' => '合格率',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#df89b0'],320),
                    'data' => array_column($res,'passNum')
                ]
            ]
        ];
        $rateTotal = $total['num']>0?round($total['passNum']/$total['num']*100,2):0;
        $json['html'] = '<!-- Unnamed (矩形) -->
        <div id="u72" class="ax_default _三级标题">
          <div id="u72_div" class=""></div>
          <div id="u72_text" class="text ">
            <p><span style="text-decoration:none;">委外质检单量&nbsp; / 合格率</span></p>
          </div>
        </div>

        <!-- Unnamed (矩形) -->
        <div id="u73" class="ax_default _一级标题">
          <div id="u73_div" class=""></div>
          <div id="u73_text" class="text ">
            <p style="font-size:14px;"><span style="font-size:28px;text-decoration:none;">'.$total['number'].'</span><span style="font-size:32px;text-decoration:none;"> </span><span style="font-size:28px;text-decoration:none;">/ '.$rateTotal.'</span><span style="text-decoration:none;">%</span></p>
          </div>
        </div>

        <!-- Unnamed (图像) -->
        <div id="u74" class="ax_default _图片_">
          '.$this->curveMini($data,'area').'
        </div>';
        return json_encode($json, 320);
    }
    /**
     * 制程
     */
    public function process(): bool|string
    {
        $start_day = date("Y-m-d",strtotime("-2 day"));
        $end_day = $this->date;
        $res = [];
        $m = $start_day;
        $total = ['number'=>0,'num'=>0,'passNum'=>0];
        while ($m <= $end_day) {
            $time = " and date_format(time, '%Y-%m-%d') = '$m' ";
            $quality_order = find([
                'table'  => "quality_order",
                'field'  => "IFNULL(count(id),0) as number,IFNULL(sum(num),0) as num,IFNULL(sum(passNum),0) as passNum",
                'single' => " coid = '".self::$coid."' and type = 4 and state = '已质检' " . $time,
            ]);
            $res[] = [
                'date'=>date("m月d日",strtotime($m)),
                'num'=>$quality_order['number'],
                'rate'=>$quality_order['num']>0?round($quality_order['passNum']/$quality_order['num']*100,2):0,
            ];
            $total['number'] += $quality_order['number'];
            $total['num'] += $quality_order['num'];
            $total['passNum'] += $quality_order['passNum'];
            $m = date("Y-m-d", strtotime($m . " +1 day"));
        }
        //订单完成情况
        $data = [
            "subtext" => '',
            "name" => array_column($res,'date'),
            "legendStyle" => "textStyle: {
				    color: '#8c8c8c'
				}",
            "series" => [
                [
                    'name' => '单量',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#8b6bbe'],320),
                    'data' => array_column($res,'num')
                ],
                [
                    'name' => '合格率',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#df89b0'],320),
                    'data' => array_column($res,'passNum')
                ]
            ]
        ];
        $rateTotal = $total['num']>0?round($total['passNum']/$total['num']*100,2):0;
        $json['html'] = '<!-- Unnamed (矩形) -->
        <div id="u81" class="ax_default _三级标题">
          <div id="u81_div" class=""></div>
          <div id="u81_text" class="text ">
            <p><span style="text-decoration:none;">制程质检单量&nbsp; / 合格率</span></p>
          </div>
        </div>

        <!-- Unnamed (矩形) -->
        <div id="u82" class="ax_default _一级标题">
          <div id="u82_div" class=""></div>
          <div id="u82_text" class="text ">
            <p style="font-size:14px;"><span style="font-size:28px;text-decoration:none;">'.$total['number'].'</span><span style="font-size:32px;text-decoration:none;"> </span><span style="font-size:28px;text-decoration:none;">/ '.$rateTotal.'</span><span style="text-decoration:none;">%</span></p>
          </div>
        </div>

        <!-- Unnamed (图像) -->
        <div id="u83" class="ax_default _图片_">
          '.$this->curveMini($data,'area').'
        </div>';
        return json_encode($json, 320);
    }
    /**
     * 制终
     */
    public function produceEnd(): bool|string
    {
        $start_day = date("Y-m-d",strtotime("-2 day"));
        $end_day = $this->date;
        $res = [];
        $m = $start_day;
        $total = ['number'=>0,'num'=>0,'passNum'=>0];
        while ($m <= $end_day) {
            $time = " and date_format(time, '%Y-%m-%d') = '$m' ";
            $quality_order = find([
                'table'  => "quality_order",
                'field'  => "IFNULL(count(id),0) as number,IFNULL(sum(num),0) as num,IFNULL(sum(passNum),0) as passNum",
                'single' => " coid = '".self::$coid."' and type = 2 and state = '已质检' " . $time,
            ]);
            $res[] = [
                'date'=>date("m月d日",strtotime($m)),
                'num'=>$quality_order['number'],
                'rate'=>$quality_order['num']>0?round($quality_order['passNum']/$quality_order['num']*100,2):0,
            ];
            $total['number'] += $quality_order['number'];
            $total['num'] += $quality_order['num'];
            $total['passNum'] += $quality_order['passNum'];
            $m = date("Y-m-d", strtotime($m . " +1 day"));
        }
        //订单完成情况
        $data = [
            "subtext" => '',
            "name" => array_column($res,'date'),
            "legendStyle" => "textStyle: {
				    color: '#8c8c8c'
				}",
            "series" => [
                [
                    'name' => '单量',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#8b6bbe'],320),
                    'data' => array_column($res,'num')
                ],
                [
                    'name' => '合格率',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#df89b0'],320),
                    'data' => array_column($res,'passNum')
                ]
            ]
        ];
        $rateTotal = $total['num']>0?round($total['passNum']/$total['num']*100,2):0;
        $json['html'] = '<!-- Unnamed (矩形) -->
        <div id="u90" class="ax_default _三级标题">
          <div id="u90_div" class=""></div>
          <div id="u90_text" class="text ">
            <p><span style="text-decoration:none;">制终质检单量&nbsp; / 合格率</span></p>
          </div>
        </div>

        <!-- Unnamed (矩形) -->
        <div id="u91" class="ax_default _一级标题">
          <div id="u91_div" class=""></div>
          <div id="u91_text" class="text ">
            <p style="font-size:14px;"><span style="font-size:28px;text-decoration:none;">'.$total['number'].'</span><span style="font-size:32px;text-decoration:none;"> </span><span style="font-size:28px;text-decoration:none;">/ '.$rateTotal.'</span><span style="text-decoration:none;">%</span></p>
          </div>
        </div>

        <!-- Unnamed (图像) -->
        <div id="u92" class="ax_default _图片_">
          '.$this->curveMini($data,'area').'
        </div>';
        return json_encode($json, 320);
    }

    /**
    })
     * 质检波动 - 返回数据
     */
    public function qualityWave(): bool|string
    {
        $timeArr[0] = date("Y-m-d",strtotime("-11 day"));
        $timeArr[1] = $this->date;
        $m = $timeArr[0];
        $res   = [];
        while($m <= $timeArr[1]){

            $res[] = [
                'date'     => date("m月d日",strtotime($m)),
                'incoming' => find([
                        'table'  => "quality_order",
                        'field'  => "IFNULL(sum(passNum),0) as passNum",
                        'single' => " coid = '".self::$coid."' and type = 1 and state = '已质检' and date_format(time, '%Y-%m-%d') = '$m' ",
                    ])['passNum'] ?? 0,
                'subcontracting' => find([
                        'table'  => "quality_order",
                        'field'  => "IFNULL(sum(passNum),0) as passNum",
                        'single' => " coid = '".self::$coid."' and type = 5 and state = '已质检' and date_format(time, '%Y-%m-%d') = '$m' ",
                    ])['passNum'] ?? 0,
                'process' => find([
                        'table'  => "quality_order",
                        'field'  => "IFNULL(sum(passNum),0) as passNum",
                        'single' => " coid = '".self::$coid."' and type = 4 and state = '已质检' and date_format(time, '%Y-%m-%d') = '$m' ",
                    ])['passNum'] ?? 0,
                'end' => find([
                        'table'  => "quality_order",
                        'field'  => "IFNULL(sum(passNum),0) as passNum",
                        'single' => " coid = '".self::$coid."' and type = 2 and state = '已质检' and date_format(time, '%Y-%m-%d') = '$m' ",
                    ])['passNum'] ?? 0,
            ];
            $m = date("Y-m-d",strtotime($m." +1 day"));
        }
        $data = [
            "subtext" => '',
            "legendStyle" => "textStyle: {
				    color: '#8c8c8c'
				}",
            "name" => array_column($res,'date'),
            "series" => [
                [
                    'name' => '来料检验',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#a4547d'],320),
                    'data' => array_column($res,'incoming')
                ],
                [
                    'name' => '委外检验',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#d977a3'],320),
                    'data' => array_column($res,'subcontracting')
                ],
                [
                    'name' => '制程检验',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#8769bc'],320),
                    'data' => array_column($res,'process')
                ],
                [
                    'name' => '制终检验',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#ffc2d9'],320),
                    'data' => array_column($res,'end')
                ]
            ]
        ];
        $json['html'] = $this->curveQuality($data);
        return json_encode($json, 320);
    }

    /**
     * 制程检验缺陷分布 - 返回数据
     */
    public function processDefect(): bool|string
    {
        $arr = find(array(
            "table"=>"quality_order_reason as a join quality_order as b on a.orderId = b.id",
            "field"=>"a.reasonId",
            "where"=>" a.coid = '".self::$coid."' and b.type = 4 and b.state = '已质检' group by a.reasonId "
        ));
        $data = array_column((array)$arr['array'],'reasonId');
        $total = find([
                'table'  => "quality_order_reason as a join quality_order as b on a.orderId = b.id",
                'field'  => "IFNULL(sum(a.num),0) as num",
                'single' => " a.coid = '".self::$coid."' and b.type = 4 and b.state = '已质检' ",
            ])['num'] ?? 0;
        $res   = [];
        foreach ($data as $m){
            $num = find([
                    'table'  => "quality_order_reason as a join quality_order as b on a.orderId = b.id",
                    'field'  => "IFNULL(sum(a.num),0) as num",
                    'single' => " a.coid = '".self::$coid."' and b.type = 4 and b.state = '已质检' and a.reasonId = '$m' ",
                ])['num'] ?? 0;
            $res[] = [
                'text'     => $m,
                'num' => $num,
                'rate' => $total>0?round($num/$total*100,2):0,
            ];
        }
        $data = [
            "subtext" => '',
            "legendStyle" => "textStyle: {
				    color: '#8c8c8c'
				}",
            "name" => array_column($res,'text'),
            "series" => [
                [
                    'name' => '数量',
                    'type' => 'bar',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#e089b1'],320),
                    'data' => array_column($res,'num')
                ],
                [
                    'name' => '占比',
                    'type' => 'line',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#9270ca'],320),
                    'data' => array_column($res,'rate')
                ]
            ]
        ];
        $json['html'] = $this->curveQuality($data);
        return json_encode($json, 320);
    }

    /**
     * 制终检验缺陷分布 - 返回数据
     */
    public function endDefect(): bool|string
    {
        $arr = find(array(
            "table"=>"quality_order_reason as a join quality_order as b on a.orderId = b.id",
            "field"=>"a.reasonId",
            "where"=>" a.coid = '".self::$coid."' and b.type = 2 and b.state = '已质检' group by a.reasonId "
        ));
        $data = array_column((array)$arr['array'],'reasonId');
        $total = find([
                'table'  => "quality_order_reason as a join quality_order as b on a.orderId = b.id",
                'field'  => "IFNULL(sum(a.num),0) as num",
                'single' => " a.coid = '".self::$coid."' and b.type = 2 and b.state = '已质检' ",
            ])['num'] ?? 0;
        $res   = [];
        foreach ($data as $m){
            $num = find([
                    'table'  => "quality_order_reason as a join quality_order as b on a.orderId = b.id",
                    'field'  => "IFNULL(sum(a.num),0) as num",
                    'single' => " a.coid = '".self::$coid."' and b.type = 2 and b.state = '已质检' and a.reasonId = '$m' ",
                ])['num'] ?? 0;
            $quarantine_reason = query("quarantine_reason"," id = '$m' ","reason");
            $res[] = [
                'text'     => $quarantine_reason['reason'],
                'num' => $num,
                'rate' => $total>0?round($num/$total*100,2):0,
            ];
        }
        $data = [
            "subtext" => '',
            "legendStyle" => "textStyle: {
				    color: '#8c8c8c'
				}",
            "name" => array_column($res,'text'),
            "series" => [
                [
                    'name' => '数量',
                    'type' => 'bar',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#e089b1'],320),
                    'data' => array_column($res,'num')
                ],
                [
                    'name' => '占比',
                    'type' => 'line',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#9270ca'],320),
                    'data' => array_column($res,'rate')
                ]
            ]
        ];
        $json['html'] = $this->curveQuality($data);
        return json_encode($json, 320);
    }

    /**
     * 来料质检缺陷分布 - 返回数据
     */
    public function incomingDefect(): bool|string
    {
        $arr = find(array(
            "table"=>"quality_order_reason as a join quality_order as b on a.orderId = b.id",
            "field"=>"a.reasonId",
            "where"=>" a.coid = '".self::$coid."' and b.type = 1 and b.state = '已质检' group by a.reasonId "
        ));
        $data = array_column((array)$arr['array'],'reasonId');
        $total = find([
                'table'  => "quality_order_reason as a join quality_order as b on a.orderId = b.id",
                'field'  => "IFNULL(sum(a.num),0) as num",
                'single' => " a.coid = '".self::$coid."' and b.type = 1 and b.state = '已质检' ",
            ])['num'] ?? 0;
        $res   = [];
        foreach ($data as $m){
            $num = find([
                    'table'  => "quality_order_reason as a join quality_order as b on a.orderId = b.id",
                    'field'  => "IFNULL(sum(a.num),0) as num",
                    'single' => " a.coid = '".self::$coid."' and b.type = 1 and b.state = '已质检' and a.reasonId = '$m' ",
                ])['num'] ?? 0;
            $quarantine_reason = query("quarantine_reason"," id = '$m' ","reason");
            $res[] = [
                'text'     => $quarantine_reason['reason'],
                'num' => $num,
                'rate' => $total>0?round($num/$total*100,2):0,
            ];
        }
        $data = [
            "subtext" => '',
            "legendStyle" => "textStyle: {
				    color: '#8c8c8c'
				}",
            "name" => array_column($res,'text'),
            "series" => [
                [
                    'name' => '数量',
                    'type' => 'bar',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#e089b1'],320),
                    'data' => array_column($res,'num')
                ],
                [
                    'name' => '占比',
                    'type' => 'line',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#9270ca'],320),
                    'data' => array_column($res,'rate')
                ]
            ]
        ];
        $json['html'] = $this->curveQuality($data);
        return json_encode($json, 320);
    }
    /**
     * 委外质检缺陷分布 - 返回数据
     */
    public function subcontractingDefect(): bool|string
    {
        $arr = find(array(
            "table"=>"quality_order_reason as a join quality_order as b on a.orderId = b.id",
            "field"=>"a.reasonId",
            "where"=>" a.coid = '".self::$coid."' and b.type = 5 and b.state = '已质检' group by a.reasonId "
        ));
        $data = array_column((array)$arr['array'],'reasonId');
        $total = find([
                'table'  => "quality_order_reason as a join quality_order as b on a.orderId = b.id",
                'field'  => "IFNULL(sum(a.num),0) as num",
                'single' => " a.coid = '".self::$coid."' and b.type = 5 and b.state = '已质检' ",
            ])['num'] ?? 0;
        $res   = [];
        foreach ($data as $m){
            $num = find([
                    'table'  => "quality_order_reason as a join quality_order as b on a.orderId = b.id",
                    'field'  => "IFNULL(sum(a.num),0) as num",
                    'single' => " a.coid = '".self::$coid."' and b.type = 5 and b.state = '已质检' and a.reasonId = '$m' ",
                ])['num'] ?? 0;
            $quarantine_reason = query("quarantine_reason"," id = '$m' ","reason");
            $res[] = [
                'text'     => $quarantine_reason['reason'],
                'num' => $num,
                'rate' => $total>0?round($num/$total*100,2):0,
            ];
        }
        $data = [
            "subtext" => '',
            "legendStyle" => "textStyle: {
				    color: '#8c8c8c'
				}",
            "name" => array_column($res,'text'),
            "series" => [
                [
                    'name' => '数量',
                    'type' => 'bar',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#e089b1'],320),
                    'data' => array_column($res,'num')
                ],
                [
                    'name' => '占比',
                    'type' => 'line',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#9270ca'],320),
                    'data' => array_column($res,'rate')
                ]
            ]
        ];
        $json['html'] = $this->curveQuality($data);
        return json_encode($json, 320);
    }
    /**
     * 工序巡检检验 - 返回数据
     */
    public function sizeError(): bool|string
    {
        $arr = find(array(
            "table"=>"quality_order_reason as a join quality_order as b on a.orderId = b.id",
            "field"=>"a.reasonId",
            "where"=>" a.coid = '".self::$coid."' and b.type = 6 and b.state = '已质检' group by a.reasonId "
        ));
        $data = array_column((array)$arr['array'],'reasonId');
        $total = find([
                'table'  => "quality_order_reason as a join quality_order as b on a.orderId = b.id",
                'field'  => "IFNULL(sum(a.num),0) as num",
                'single' => " a.coid = '".self::$coid."' and b.type = 6 and b.state = '已质检' ",
            ])['num'] ?? 0;
        $res   = [];
        foreach ($data as $m){
            $num = find([
                    'table'  => "quality_order_reason as a join quality_order as b on a.orderId = b.id",
                    'field'  => "IFNULL(sum(a.num),0) as num",
                    'single' => " a.coid = '".self::$coid."' and b.type = 6 and b.state = '已质检' and a.reasonId = '$m' ",
                ])['num'] ?? 0;
            $res[] = [
                'text'     => $m,
                'num' => $num,
                'rate' => $total>0?round($num/$total*100,2):0,
            ];
        }
        $data = [
            "subtext" => '',
            "legendStyle" => "textStyle: {
				    color: '#8c8c8c'
				}",
            "name" => array_column($res,'text'),
            "series" => [
                [
                    'name' => '数量',
                    'type' => 'bar',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#e089b1'],320),
                    'data' => array_column($res,'num')
                ],
                [
                    'name' => '占比',
                    'type' => 'line',
                    'smooth' => true,
                    'itemStyle' => json_encode(['color'=>'#9270ca'],320),
                    'data' => array_column($res,'rate')
                ]
            ]
        ];
        $json['html'] = $this->curveQuality($data);
        return json_encode($json, 320);
    }
    /**
     * 尺寸误差控制 - 返回数据
     */
    /*public function sizeError(): bool|string
    {
        $timeArr[0] = date('Y-m-d',strtotime('-12 day'));
        $timeArr[1] = $this->date;
        $m = $timeArr[0];
        $res   = [];
        while($m <= $timeArr[1]){
            $res[] = [
                'date'     => date("m月d日",strtotime($m)),
                'error' => rand(-50,100),
            ];
            $m = date("Y-m-d",strtotime($m." +1 day"));
        }
        $data = [
            "subtext" => '',
            "legendStyle" => "textStyle: {
				    color: '#8c8c8c'
				}",
            "name" => array_column($res,'date'),
            "series" => [
                [
                    'name' => '误差',
                    'itemStyle' => json_encode(['color'=>'#ff99c3'],320),
                    'data' => array_column($res,'error')
                ],
            ]
        ];
        $json['html'] = $this->curveQuality($data);
        return json_encode($json, 320);
    }*/
    /**
     * 曲线图模板
     *
     * @param array  $data = ["name" => "纵坐标标题一维数组", "series" => [ ["name" => "系列名称","data" => ["数据"] ],… ] ];
     * @param string $type 类型：折线 line ,柱状图 bar
     */
    public function curveQuality(array $data, string $type = 'line')
    {
        $areaStyle = '';
        if ($type == 'area') {
            //面积曲线
            $type      = 'line';
            $areaStyle = "areaStyle:{},";
        }
        //系列
        $series = $legend = "";
        // 自定义
        $keys   = ['stack', 'emphasis', 'smooth', 'barMaxWidth', 'itemStyle', 'smooth'];
        $result = isset($data['series'][0]) ? array_intersect($keys, array_keys($data['series'][0])) : [];
        foreach ($data['series'] as $array) {
            $comma     = empty($series) ? '' : ',';
            $attribute = '';
            foreach ($result as $key) {
                if (isset($array[$key])) {
                    $attribute .= $key . ':' . (($key == 'emphasis' || $key == 'itemStyle') ? $array[$key] : "'$array[$key]'") . ',';
                }
            }
            $list_type = isset($array['type']) ? $array['type'] : $type;
            $yAxisIndex = isset($array['yAxisIndex'])?$array['yAxisIndex']:0;
            $series    .= $comma . "
			{
				name: '" . $array['name'] . "',
				type: '$list_type',
				yAxisIndex: $yAxisIndex,
                $attribute
				data: [" . implode(",", $array['data']) . "],
				$areaStyle
			}";
            $legend    .= "'{$array['name']}',";
        }
        $legend = rtrim($legend, ',');
        $text = isset($data['text'])?$data['text']:'';
        $subtext = isset($data['subtext'])?$data['subtext']:'';
        $legendStyle = isset($data['legendStyle'])?$data['legendStyle']:'';
        //生成html
        $option = "
		var option = {
			title: {
                text: '{$text}',
                subtext: '{$subtext}',
                left: 'right',
                top: '0%'
            },
			tooltip: {
                trigger: 'axis'
            },
			legend: {
                top:'top',
                right:'5%',
				data: [" . $legend . "],
				$legendStyle
			},
			grid: {
                left: '3%', right: '3%', bottom: '10%', containLabel: true
			},
			toolbox: {
				feature: {saveAsImage: {show: false,} }
			},
			xAxis: {
				type: 'category', boundaryGap: false,axisLabel: {show: true,textStyle: {color: '#7f7f7f'},interval: 0,rotate: 40}, data: ['" . implode("','", $data['name']) . "'],axisLine: {show:true,lineStyle: {color: '#7f7f7f'}}
			},
			yAxis: [
                {
                    type: 'value', axisLabel:{ margin: 30, },splitLine: {show: true,lineStyle: {type: 'dashed',color: '#383b59'}} //刻度标签与轴线之间的距离
                },
                {type: 'value', axisLabel:{ margin: 30, },splitLine: {show: true,lineStyle: {type: 'dashed',color: '#383b59'}},min: 0,max: 100,axisLabel: {formatter: '{value} %'}
                }
			],
			series: [
				" . $series . "
			]
		};";
        return $this->echarts($option);
    }

    public function style(){
        return <<<EOT
        <style>
            body {
              margin:0px;
              background-color:rgba(242, 242, 242, 1);
              background-image:none;
              position:static;
              left:auto;
              width:1920px;
              margin-left:0;
              margin-right:0;
              text-align:left;
            }
            .form_sketch {
              border-color:transparent;
              background-color:transparent;
            }
            #base {
              position:absolute;
              z-index:0;
            }
            #u0_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:1920px;
              height:1080px;
              background:inherit;
              background-color:rgba(27, 31, 51, 1);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
            }
            #u0 {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:1920px;
              height:1080px;
              display:flex;
            }
            #u0 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u0_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u1_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:1920px;
              height:1080px;
            }
            #u1 {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:1920px;
              height:1080px;
              display:flex;
              opacity:0.2;
            }
            #u1 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u1_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u2_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:1872px;
              height:80px;
              background:inherit;
              background-color:rgba(42, 47, 75, 0.898039215686275);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
            }
            #u2 {
              border-width:0px;
              position:absolute;
              left:24px;
              top:17px;
              width:1872px;
              height:80px;
              display:flex;
              opacity:0.9;
            }
            #u2 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u2_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u3_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:136px;
              height:38px;
            }
            #u3 {
              border-width:0px;
              position:absolute;
              left:42px;
              top:38px;
              width:136px;
              height:38px;
              display:flex;
            }
            #u3 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u3_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #ufull_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:30px;
              height:38px;
            }
            #ufull {
              border-width:0px;
              position:absolute;
              left:350px;
              top:38px;
              width:136px;
              height:38px;
              display:flex;
            }
            #ufull_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u4_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:128px;
              height:37px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Arial Normal', 'Arial';
              font-weight:400;
              font-style:normal;
              color:#F2F2F2;
            }
            #u4 {
              border-width:0px;
              position:absolute;
              left:166px;
              top:34px;
              width:128px;
              height:37px;
              display:flex;
              font-family:'Arial Normal', 'Arial';
              font-weight:400;
              font-style:normal;
              color:#F2F2F2;
            }
            #u4 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u4_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u5 {
              position:absolute;
              left:1574px;
              top:49px;
            }
            #u5_state0 {
              position:relative;
              left:0px;
              top:0px;
              width:109px;
              height:17px;
              background-image:none;
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
            }
            #u5_state0_content {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:1px;
              height:1px;
            }
            #u6_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:103px;
              height:16px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:14px;
              letter-spacing:1px;
              color:#F2F2F2;
            }
            #u6 {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:103px;
              height:16px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:14px;
              letter-spacing:1px;
              color:#F2F2F2;
            }
            #u6 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u6_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u5_state1 {
              position:relative;
              left:0px;
              top:0px;
              width:109px;
              height:17px;
              background-image:none;
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              visibility:hidden;
            }
            #u5_state1_content {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:1px;
              height:1px;
            }
            #u7_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:103px;
              height:16px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:14px;
              letter-spacing:1px;
              color:#F2F2F2;
            }
            #u7 {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:103px;
              height:16px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:14px;
              letter-spacing:1px;
              color:#F2F2F2;
            }
            #u7 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u7_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u8_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:16px;
              height:16px;
            }
            #u8 {
              border-width:0px;
              position:absolute;
              left:1643px;
              top:49px;
              width:16px;
              height:16px;
              display:flex;
            }
            #u8 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u8_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u9_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:1872px;
              height:200px;
              background:inherit;
              background-color:rgba(42, 47, 75, 0.898039215686275);
              border:none;
              border-radius:10px;
              border-bottom-right-radius:0px;
              border-bottom-left-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
            }
            #u9 {
              border-width:0px;
              position:absolute;
              left:24px;
              top:107px;
              width:1872px;
              height:200px;
              display:flex;
              opacity:0.9;
            }
            #u9 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u9_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u10_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:931px;
              height:365px;
              background:inherit;
              background-color:rgba(42, 47, 75, 0.898039215686275);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
            }
            #u10 {
              border-width:0px;
              position:absolute;
              left:24px;
              top:317px;
              width:931px;
              height:365px;
              display:flex;
              opacity:0.9;
            }
            #u10 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u10_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u11_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:460px;
              height:365px;
              background:inherit;
              background-color:rgba(42, 47, 75, 0.898039215686275);
              border:none;
              border-radius:10px;
              border-top-left-radius:0px;
              border-top-right-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
            }
            #u11 {
              border-width:0px;
              position:absolute;
              left:24px;
              top:692px;
              width:460px;
              height:365px;
              display:flex;
              opacity:0.9;
            }
            #u11 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u11_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u12_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:460px;
              height:365px;
              background:inherit;
              background-color:rgba(42, 47, 75, 0.898039215686275);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
            }
            #u12 {
              border-width:0px;
              position:absolute;
              left:965px;
              top:317px;
              width:460px;
              height:365px;
              display:flex;
              opacity:0.9;
            }
            #u12 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u12_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u13_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:931px;
              height:365px;
              background:inherit;
              background-color:rgba(42, 47, 75, 0.898039215686275);
              border:none;
              border-radius:10px;
              border-top-left-radius:0px;
              border-top-right-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
            }
            #u13 {
              border-width:0px;
              position:absolute;
              left:965px;
              top:692px;
              width:931px;
              height:365px;
              display:flex;
              opacity:0.9;
            }
            #u13 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u13_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u14_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:460px;
              height:365px;
              background:inherit;
              background-color:rgba(42, 47, 75, 0.898039215686275);
              border:none;
              border-radius:10px;
              border-top-left-radius:0px;
              border-top-right-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
            }
            #u14 {
              border-width:0px;
              position:absolute;
              left:495px;
              top:692px;
              width:460px;
              height:365px;
              display:flex;
              opacity:0.9;
            }
            #u14 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u14_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u15_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:460px;
              height:365px;
              background:inherit;
              background-color:rgba(42, 47, 75, 0.898039215686275);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
            }
            #u15 {
              border-width:0px;
              position:absolute;
              left:1436px;
              top:317px;
              width:460px;
              height:365px;
              display:flex;
              opacity:0.9;
            }
            #u15 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u15_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u16_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:1872px;
              height:40px;
            }
            #u16 {
              border-width:0px;
              position:absolute;
              left:24px;
              top:107px;
              width:1872px;
              height:40px;
              display:flex;
              opacity:0.9;
            }
            #u16 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u16_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u17_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:931px;
              height:40px;
            }
            #u17 {
              border-width:0px;
              position:absolute;
              left:24px;
              top:317px;
              width:931px;
              height:40px;
              display:flex;
              opacity:0.9;
            }
            #u17 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u17_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u18_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:460px;
              height:40px;
            }
            #u18 {
              border-width:0px;
              position:absolute;
              left:965px;
              top:317px;
              width:460px;
              height:40px;
              display:flex;
              opacity:0.9;
            }
            #u18 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u18_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u19_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:460px;
              height:40px;
            }
            #u19 {
              border-width:0px;
              position:absolute;
              left:1436px;
              top:317px;
              width:460px;
              height:40px;
              display:flex;
              opacity:0.9;
            }
            #u19 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u19_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u20_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:460px;
              height:40px;
            }
            #u20 {
              border-width:0px;
              position:absolute;
              left:24px;
              top:692px;
              width:460px;
              height:40px;
              display:flex;
              opacity:0.9;
            }
            #u20 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u20_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u21_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:460px;
              height:40px;
            }
            #u21 {
              border-width:0px;
              position:absolute;
              left:495px;
              top:692px;
              width:460px;
              height:40px;
              display:flex;
              opacity:0.9;
            }
            #u21 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u21_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u22_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:931px;
              height:40px;
            }
            #u22 {
              border-width:0px;
              position:absolute;
              left:965px;
              top:692px;
              width:931px;
              height:40px;
              display:flex;
              opacity:0.9;
            }
            #u22 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u22_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u23_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:96px;
              height:19px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:16px;
              color:#F2F2F2;
            }
            #u23 {
              border-width:0px;
              position:absolute;
              left:44px;
              top:118px;
              width:96px;
              height:19px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:16px;
              color:#F2F2F2;
            }
            #u23 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u23_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u24_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:64px;
              height:19px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:16px;
              color:#F2F2F2;
            }
            #u24 {
              border-width:0px;
              position:absolute;
              left:44px;
              top:328px;
              width:64px;
              height:19px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:16px;
              color:#F2F2F2;
            }
            #u24 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u24_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u25_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:128px;
              height:19px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:16px;
              color:#F2F2F2;
            }
            #u25 {
              border-width:0px;
              position:absolute;
              left:985px;
              top:328px;
              width:128px;
              height:19px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:16px;
              color:#F2F2F2;
            }
            #u25 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u25_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u26_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:128px;
              height:19px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:16px;
              color:#F2F2F2;
            }
            #u26 {
              border-width:0px;
              position:absolute;
              left:1454px;
              top:328px;
              width:128px;
              height:19px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:16px;
              color:#F2F2F2;
            }
            #u26 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u26_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u27_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:128px;
              height:19px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:16px;
              color:#F2F2F2;
            }
            #u27 {
              border-width:0px;
              position:absolute;
              left:44px;
              top:703px;
              width:128px;
              height:19px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:16px;
              color:#F2F2F2;
            }
            #u27 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u27_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u28_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:128px;
              height:19px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:16px;
              color:#F2F2F2;
            }
            #u28 {
              border-width:0px;
              position:absolute;
              left:515px;
              top:703px;
              width:128px;
              height:19px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:16px;
              color:#F2F2F2;
            }
            #u28 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u28_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u29_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:96px;
              height:19px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:16px;
              color:#F2F2F2;
            }
            #u29 {
              border-width:0px;
              position:absolute;
              left:985px;
              top:703px;
              width:96px;
              height:19px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:16px;
              color:#F2F2F2;
            }
            #u29 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u29_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #qualityWaveHtml {
              border-width:0px;
              position:absolute;
              left:44px;
              top:376px;
              width:890px;
              height:290px;
              display:flex;
            }
            #incomingHtml {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:0px;
              height:0px;
            }
            #u63_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:143px;
              height:16px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:14px;
              color:#F2F2F2;
            }
            #u63 {
              border-width:0px;
              position:absolute;
              left:107px;
              top:186px;
              width:143px;
              height:16px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:14px;
              color:#F2F2F2;
            }
            #u63 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u63_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u64_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:100px;
              height:38px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              color:#F2F2F2;
            }
            #u64 {
              border-width:0px;
              position:absolute;
              left:107px;
              top:220px;
              width:100px;
              height:38px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              color:#F2F2F2;
            }
            #u64 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u64_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u65_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:150px;
              height:100px;
            }
            #u65 {
              border-width:0px;
              position:absolute;
              left:252px;
              top:164px;
              width:150px;
              height:100px;
              display:flex;
            }
            #u65 .text {
              position:absolute;
              align-self:center;
              padding:2px 2px 2px 2px;
              box-sizing:border-box;
              width:100%;
            }
            #u65_text {
              border-width:0px;
              word-wrap:break-word;
              text-transform:none;
              visibility:hidden;
            }
            #u66_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:54px;
              height:6px;
            }
            #subcontractingHtml {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:0px;
              height:0px;
            }
            #u72_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:143px;
              height:16px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:14px;
              color:#F2F2F2;
            }
            #u72 {
              border-width:0px;
              position:absolute;
              left:578px;
              top:186px;
              width:143px;
              height:16px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:14px;
              color:#F2F2F2;
            }
            #u72 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u72_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u73_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:100px;
              height:38px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              color:#F2F2F2;
            }
            #u73 {
              border-width:0px;
              position:absolute;
              left:578px;
              top:220px;
              width:100px;
              height:38px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              color:#F2F2F2;
            }
            #u73 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u73_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u74_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:150px;
              height:100px;
            }
            #u74 {
              border-width:0px;
              position:absolute;
              left:723px;
              top:164px;
              width:150px;
              height:100px;
              display:flex;
            }
            
            #processHtml {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:0px;
              height:0px;
            }
            #u81_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:143px;
              height:16px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:14px;
              color:#F2F2F2;
            }
            #u81 {
              border-width:0px;
              position:absolute;
              left:1048px;
              top:186px;
              width:143px;
              height:16px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:14px;
              color:#F2F2F2;
            }
            #u81 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u81_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u82_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:100px;
              height:38px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              color:#F2F2F2;
            }
            #u82 {
              border-width:0px;
              position:absolute;
              left:1048px;
              top:220px;
              width:100px;
              height:38px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              color:#F2F2F2;
            }
            #u82 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u82_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u83_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:150px;
              height:100px;
            }
            #u83 {
              border-width:0px;
              position:absolute;
              left:1193px;
              top:164px;
              width:150px;
              height:100px;
              display:flex;
            }
            #produceEndHtml {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:0px;
              height:0px;
            }
            #u90_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:143px;
              height:16px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:14px;
              color:#F2F2F2;
            }
            #u90 {
              border-width:0px;
              position:absolute;
              left:1519px;
              top:186px;
              width:143px;
              height:16px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              font-size:14px;
              color:#F2F2F2;
            }
            #u90 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u90_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u91_div {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:100px;
              height:38px;
              background:inherit;
              background-color:rgba(255, 255, 255, 0);
              border:none;
              border-radius:0px;
              -moz-box-shadow:none;
              -webkit-box-shadow:none;
              box-shadow:none;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              color:#F2F2F2;
            }
            #u91 {
              border-width:0px;
              position:absolute;
              left:1519px;
              top:220px;
              width:100px;
              height:38px;
              display:flex;
              font-family:'Lato';
              font-weight:400;
              font-style:normal;
              color:#F2F2F2;
            }
            #u91 .text {
              position:absolute;
              align-self:flex-start;
              padding:0px 0px 0px 0px;
              box-sizing:border-box;
              width:100%;
            }
            #u91_text {
              border-width:0px;
              white-space:nowrap;
              text-transform:none;
            }
            #u92_img {
              border-width:0px;
              position:absolute;
              left:0px;
              top:0px;
              width:150px;
              height:100px;
            }
            #u92 {
              border-width:0px;
              position:absolute;
              left:1664px;
              top:164px;
              width:150px;
              height:100px;
              display:flex;
            }
            #incomingDefectHtml {
              border-width:0px;
              position:absolute;
              left:44px;
              top:754px;
              width:420px;
              height:260px;
              display:flex;
            }
            #subcontractingDefectHtml {
                border-width: 0px;
                position: absolute;
                left: 511px;
                top: 754px;
                width: 420px;
                height: 260px;
                display: flex;
            }
            #processDefectHtml {
                border-width: 0px;
                position: absolute;
                left: 985px;
                top: 382px;
                width: 420px;
                height: 260px;
                display: flex;
            }
            #endDefectHtml {
                border-width: 0px;
                position: absolute;
                left: 1455px;
                top: 382px;
                width: 420px;
                height: 260px;
                display: flex;
            }
            #sizeErrorHtml {
                border-width: 0px;
                position: absolute;
                left: 985px;
                top: 754px;
                width: 890px;
                height: 290px;
                display: flex;
            }
            #u4 p{
                font-size: 32px!important;
                line-height: 37px!important;
            }
            ._三级标题 p{
                font-size: 16px!important;
            }
    </style>
EOT;
    }

}
